在大多數的企業網路中,Windows 電腦是數量佔比最多的作業系統,而為了集中管理這些 Windows 電腦,會採用 Active Directory 服務進行集中化管理,而 Active Directory 當中的網域控制站也兼負了帳號密碼驗證的重要任務。
由於惡意軟體與網路攻擊層出不窮,經常會發生對 Windows 主機進行暴力帳密猜測的攻擊,若有啟用安全性稽核,這些事件都在 Windows 的事件記錄中,可以進行分析。
不過由事件檢視器分析是一件痛苦又麻煩的事,因此前面我們也介紹過使用 Graylog 搭配相關的 Dashboard 進行快速的總覽觀看與數據圖表,可以快速知道問題帳號、主機。然而在某些時候,需要的是將多種事件繪製成有關聯性的圖表,Graylog 就力有未逮了。
還好開源方案中仍然讓我們發現了一款相當好用的開源工具,它是一款在 BlackHat 2018 大會上出現的好工具,名為 LogonTracer。
它能夠為我們做到幾項功能:
在事件方面,它會取出以下類型進行分析:
下圖是官網上所呈現的一張範例圖,可以將帳戶、主機與關聯性一次清楚的呈現,相當易讀。
圖表範例
LogonTracer 有兩種安裝方式,一種是傳統的套件一個一個安裝起來,另一個是使用已經打包好的 Docker 容器套件執行,可依據需求選擇。
由於這個系統是在需要分析時才使用,因此我個人會選用 Docker 容器方式,節省大量安裝時間,本文以 Ubuntu 18.04 為例。
apt update
apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
apt update
apt install docker-ce
安裝完成以後,可以用 systemctl status docker
指令確認是否正確執行中。
docker pull jpcertcc/docker-logontracer
docker run --detach --publish=7474:7474 --publish=7687:7687 --publish=8080:8080 -e LTHOSTNAME=0.0.0.0 jpcertcc/docker-logontracer
至此安裝完成,終究還是用 Docker 方式輕鬆又寫意啊。可惜這樣就不能貼一堆安裝套件的指令混字數了。(誤)
最後請以瀏覽器打開 http://ip:8080 ,即可進入使用頁面。
登入系統之後,即可看到 LogonTracer 的主畫面,最上方是篩選、搜尋與匯出的工具列;左方是可以直接點選取出的相關條件;右方是依據內容產生使用者與主機的排行榜,目前因為還沒有匯入資料,所以右方的排行榜是範例資料。
主畫面
若要將事件交由 LogonTracer 進行分析,請到 Windows Server 上,例如網域控制站將安全性事件匯出或是複製出來,並將畫面捲至主畫面最左下角按下 [Upload Event Log] 按鈕,在此選擇要分析的 .evtx 事件檔,可以複選多個一起上傳。
上傳事件記錄檔案
上傳時記得最前面的時區欄位要調整,以台灣的時區請選擇 8,若您的時區不同,請依據實際情況調整。
提醒:系統需要啟用登入與登出的相關安全性稽核,相關設定可以至文末參考資料最後一項查閱。
圖表-Grid
上圖是選則「Grid」圖表類型的呈現方式。
圖表-Cose
上圖是選則「Cose」圖表類型的呈現方式,我個人是比較喜歡這種呈現方式。
在這些圖表上都可以使用滑鼠拖曳、放大與縮小,其中的每一個圖示都可以自己拉動放到想要的位置,以方便想要查看的細節與關聯。
LogonTracer 使用不同的形狀與顏色標示不同的項目,這對於在大量資訊的圖表中可以幫助我們快速辨識需要觀察的重點項目。
圖示顏色說明:
紅色八角形: 俱備系統權限的帳戶
藍色圓形: 一般使用者帳戶
綠色方形: IP 位址或主機
除了查看登入事件的關聯圖表之外,LogonTracer 也可以用時間軸的方式來看多個帳戶之間可能的事件重疊性。
時間軸表格
對於時間軸上的使用者,還可以點選後切換用折線圖的方式繪製,用以檢視不同時間點登入事件的數量。
時間軸圖表
除了上面的功能之外,LogonTracer 還能以帳戶的角度來檢視相關事件的關連並繪製成圖表,可以方便看出這個事件與其它主機的相關狀況。
帳戶角度檢視
同樣的,我們也可以從主機的出發點來檢視,此主機與那一些帳戶有發生過的事項,可以快速看出事件與相關性。
主機角度檢視
採用 LogonTracer 這套開源工具,可以協助我們將事件記錄做集中化的分析並產出具有高度可讀性的圖表,對於管理者要追查登入相關的異常事件幫助很大,可以省下大量交叉比對的時間。
再加上將 LogonTracer 與 Graylog 搭配使用,相信將會是帳戶管理者好用的兩把工具。
JPCERTCC/LogonTracer
https://github.com/JPCERTCC/LogonTracer
Jump start with Docker · JPCERTCC/LogonTracer Wiki
https://github.com/JPCERTCC/LogonTracer/wiki/jump-start-with-docker
Important Notes (audit policy change on client side) · JPCERTCC/LogonTracer Wiki
https://github.com/JPCERTCC/LogonTracer/wiki/Important-Notes-(audit-policy-change-on-client-side)
內文中的
docker run --detach --publish=7474:7474 --publish=7687:7687 --publish=8080:8080 -e LTHOSTNAME=0.0.0.0 jpcertcc/docker-logontracer
如果用0.0.0.0 目前會遇到 neo4j-web.min.js 無法建立連線.
'ws://0.0.0.0:7687/' failed: Error in connection establishment: net::ERR_ADDRESS_INVALID
可以上傳檔案建立資料, 但8080 port 的web 無法連到 0.0.0.0:7687 取得資料,
把0.0.0.0的IP換成你的本機IP可以解決
$ docker run
--detach
--publish=7474:7474 --publish=7687:7687 --publish=8080:8080
-e LTHOSTNAME=[IP_Address]
jpcertcc/docker-logontracer
感謝分享~
第1次「Upload Event Log」上傳及處理事件皆正常
1、問後續使用「Upload Event Log」會出現「Upload Failed!」可能是什麼原因?(事件重複?)
1-1、後續「Upload Event Log」是要勾「Add additional EVTX or XML files」嗎?
1-2、如果我:
6/1從DC複制Security.evtx出來,餵到LogonTracer
6/2又從DC複制Security.evtx出來(包含全部的日期),餵到LogonTracer
某事件是否會重複計算?
2、請問要如何「Load from Elasticsearch」?
Graylog會裝Elasticsearch,我Graylog開127.0.0.1:9200有顯示json檔,所以我在Graylog VM上跑Docker的LogontTracer,但在「Load Event Log from Elasticsearch」還是一直Wait。
感謝節省哥
log是顯視
elasticsearch.exceptions.ConnectionError:ConnectionError(:Failed to establish a new connection:[Errno 111] Connection refused)
感謝回覆^^
今天又試一下,發現:
(1)Time Zone選對
(2)Add addition EVTX or XML files打勾
就可上傳成功。